(function($){
$.each(['touchstart', 'touchend', 'touchmove'], function(i, name){
if(!document.addEventListener){return;}
var blockSimple;
//capture events on document
document.addEventListener(name, function(e){
if(e.touches && e.touches.length > 1){
blockSimple = true;
setTimeout(function(){
blockSimple = false;
}, 9);
}
}, true);
$.event.special['simple'+name] = {
setup: function(){
$(this).bind(name, $.event.special['simple'+name].handler);
return true;
},
teardown: function(){
$(this).unbind('.touchdrag');
return true;
},
handler: function(e, d){
if(blockSimple || !e.originalEvent || !e.originalEvent.touches || e.originalEvent.touches.length !== 1){return;}
var te = e.originalEvent.touches.item(0);

te.type = 'simple'+name;
te.preventDefault = function(){
e.preventDefault();
};
return $.event.handle.apply(this, [te, d]);
}
};
});
})(jQuery);